From 5f8748c53e65f96b2b4439aa94fc6c15f92c2c7a Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Tue, 21 Jul 1998 16:06:00 +0000 Subject: [PATCH] Marshallers for C_CALLBACK parameters now pass "func, func_data," instead Marshallers for C_CALLBACK parameters now pass "func, func_data," instead of "func,". --- gtk/genmarshal.pl | 21 +++++-- gtk/gtkmarshal.c | 144 +++++++++++++++++++++++++++++----------------- gtk/gtkmarshal.h | 56 ++++++++++-------- 3 files changed, 139 insertions(+), 82 deletions(-) diff --git a/gtk/genmarshal.pl b/gtk/genmarshal.pl index 43652b3f6c..9fd2491e46 100755 --- a/gtk/genmarshal.pl +++ b/gtk/genmarshal.pl @@ -9,9 +9,9 @@ "DOUBLE"=>"gdouble", "STRING"=>"gpointer", "ENUM"=>"gint", "FLAGS"=>"gint", "BOXED"=>"gpointer", "FOREIGN"=>"gpointer", - "CALLBACK"=>"gpointer", "POINTER"=>"gpointer", + "C_CALLBACK"=>"C_CALLBACK", "POINTER"=>"gpointer", "ARGS"=>"gpointer", "SIGNAL"=>"gpointer", - "C_CALLBACK"=>"gpointer", "OBJECT"=>"gpointer", + "OBJECT"=>"gpointer", "STYLE"=>"gpointer", "GDK_EVENT"=>"gpointer"); $srcdir = $ENV{'srcdir'} || '.'; @@ -98,7 +98,12 @@ EOT print OS "typedef $trans{$retval} (*GtkSignal_$funcname) (GtkObject *object, \n"; $argn = 1; for (@params) { - print OS "$trans{$_} arg".$argn++.",\n" unless $_ eq "NONE"; + if($_ eq "C_CALLBACK") { + print OS "gpointer arg".$argn."a,\n"; + print OS "gpointer arg".$argn++."b,\n"; + } else { + print OS "$trans{$_} arg".$argn++.",\n" unless $_ eq "NONE"; + } } print OS "gpointer user_data);\n"; @@ -120,8 +125,14 @@ EOT print OS " (* rfunc) (object,\n"; for($i = 0; $i < (scalar @params); $i++) { - if ($params[$i] ne "NONE") { - print OS " GTK_VALUE_$params[$i](args[$i]),\n"; + if($params[$i] eq "C_CALLBACK") { + print OS <